package com.xinqi.modules.course.course.dto.req;

import com.xinqi.common.green.annotation.Text;
import com.xinqi.modules.course.clazz.dto.req.ClassCreateDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import javax.validation.Valid;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.util.List;

/**
 * 课程表-请求对象
 *
 * @author: system
 * @date: 2023/01/17
 */
@Data
@Schema(name = "课程表-新增")
public class CourseCreateDTO implements Serializable {

    /**
     * 课程名称
     */
    @Text
    @NotBlank(message = "请输入课程名称")
    @Size(min = 0, max = 15, message = "{course.name.length.valid}")
    private String courseName;

    /**
     * 课程介绍
     */
    @Text
    @Size(min = 0, max = 300, message = "{course.introduce.length.valid}")
    private String introduce;
    /**
     * 课程封面
     */
    @NotBlank(message = "缺少课程封面")
    private String courseColorCover;
    /**
     * 课程背景APP端
     */
    private String courseImageCoverApp;
    /**
     * 课程背景PC端
     */
    private String courseImageCoverPc;
    /**
     * 文件地址
     */
    private String fileUrl;
    /**
     * 链接地址
     */
    private String link;
    /**
     * 扩展字段
     */
    private String extend;

    /**
     * 云课本id
     */
    private Long cloudTextbookId;

    /**
     * 已完成数量
     */
    private Long completNumber;

    /**
     * 学习中数量
     */
    private Long learningNumber;

    /**
     * 待学习数量
     */
    private Long learnedNumber;

    /**
     * 已批人数
     */
    private Long approvedNumber;

    /**
     * 已交人数
     */
    private Long paidNumber;

    /**
     * 参与人数
     */
    private Long partakeNumber;

    /**
     * 评论数
     */
    private Long commentNumber;

    /**
     * 学生数量
     */
    private Long studentNumber;

    @NotEmpty(message = "缺少班级信息")
    @Valid
    private List<ClassCreateDTO> classList;

}
